package com.future.service;

import com.future.pojo.*;
import org.mapstruct.Mapper;

import java.util.List;

public interface MusicService {

    //音乐条数
    int countMusic();

    //歌手条数
    int countSinger();

    //音乐第一条ID
    int musicFirst();

    //音乐最后一条ID
    int musicFinally();

    //增加一个音乐
    int addMusic(Musics musics);

    //查询所有音乐
    List<Musics> queryAllMusic(int begin, int end);

    //查询全部歌手
    List<Users> queryAllSinger(int begin, int end);


    //查询音乐是否在我喜欢中
    List<Musiclist> loveHistory(int userId,String mcName);


    //删除一个音乐
    int deleteMusic(int id);


    //根据ID查找音乐和专辑信息
    Albmusic queryByIdAlbmusic(int mcId);

    //更改音乐信息
    int updateMusic(Musics musics);

    //根据歌曲相关信息模糊查找
    List<Musics> queryByNameMusic(String mcName, int begin, int end);

    //根据热度排名
    List<Musics> HotMusic();

    //热歌榜
    List<Musics> HotFiveMusic();

    //新歌榜
    List<Musics> NewFiveMusic();

    //翻唱榜
    List<Musics> FanFiveMusic();

    //欧美榜
    List<Musics> EngliFiveMusic();

    //日韩榜
    List<Musics> RiFiveMusic();

    //获取一个人的所有歌单
    List<Musiclist> userMusiclist(int userId);

//    //添加一个歌单
//    int addMusiclist(List<Musiclist> musiclist);

    //添加我喜欢歌单
    int addloveMusiclist(Musiclist musiclist);

    //添加默认我的下载歌单
    int addDownMusiclist(Musiclist musiclist);

    //查询一个歌单中的所有歌曲
    List<Musiclistmusic> queryOnemclist(int userId, String mclsName);

    //查找一个人我的下载的歌曲
    List<Musiclistmusic> queryOneDownmclist(int userId);

    //查找一个人我喜欢的歌曲
    List<Musiclistmusic> queryOneLovemclist(int userId);




    //向歌单里面添加歌曲
    int addMusictolist( int userId,String mclsName, String mcName);

    //向我喜欢歌单里面添加歌曲
    int addMusictoLovelist(Musiclist musiclist);

    //向我喜欢歌单里面添加歌曲
    int addMusicToDownlist(Musiclist musiclist);

    //向歌单里面删除歌曲
    int deletelistMusic(int malsId);

    //删除一个歌单
    int deleteMusiclist(int userId, String mclsName);

    //添加一个新专辑
    int addAlbum(Album album);

    //查找歌手全部专辑
    List<Album> queryallAlbof(int userId);

    //查询一个专辑内的所有歌曲
    List<Musics> queryOneAlb(int albId);

    //删除一个专辑
    int deleteAlbum(int albId);

    //每日推荐
    List<Album> TuiFiveAlbum();

    //RAP/HIP HOP榜
    List<Album> RapFiveAlbum();

    //POP流行榜
    List<Album> PopFiveAlbum();

    // FOLK民谣榜
    List<Album> FolkFiveAlbum();

    //SOUNDTRACK影视原声榜
    List<Album> SoundtrackFiveAlbum();

    //ROCK摇滚榜
    List<Album> RockFiveAlbum();



    //专辑热度+1
    int addHotAlb(int albId);

    //评论热度+1
    int addHotDis(int disId);

    //歌曲热度+1
    int addHotMusic(int mcId);

    //用户热度+1
    int addHotUser(int userId);

    //检查是否已经喜欢
    int deleteLike(String mcName,int userId);

    //添加评论
    int addDiscuss(Discuss discuss);

    //删除评论
    int deleteDis(int disId);

    //查看评论
    List<Discuss> musicDiscuss(int mcId);

    //评论总条数
    int totalDis(int mcId);
    //回复评论条数
    int totalreply(int dis_id);
    //评论喜欢状态
    int discusslikestatus(int userId);

    Musics queryMusicById(int mcId);
}
